home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 5 / Apprentice-Release5.iso / Source Code / Libraries / DCLAP 6d / dclap6d / DBio / DSeqDoc.h < prev    next >
Encoding:
Text File  |  1996-07-05  |  4.6 KB  |  152 lines  |  [TEXT/R*ch]

  1. // DSeqDoc.h
  2. // d.g.gilbert, 1990-1994
  3.  
  4. #ifndef _DSEQDOC_
  5. #define _DSEQDOC_
  6.  
  7. #include "DSequence.h"
  8. #include "DSeqList.h"
  9. #include <DTableView.h>
  10. #include <DWindow.h>
  11. #include <DMethods.h>
  12. #include <DREnzyme.h>
  13. #include <DSeqViews.h>
  14.  
  15.  
  16. class DPrompt;
  17. class DCheckBox;
  18. class DMenu;
  19. class DSeqFormatPopup;
  20. class DAlnModePopup;
  21. class DAlnColorPopup;
  22. class DPopupList;
  23.  
  24. class    DSeqDoc : public DWindow, public DSaveHandler, public DPrintHandler
  25. {
  26. public:
  27.  
  28.     enum sdTasks  { 
  29.         kSeqdoc = 310, 
  30.         kSeqMenu, kInternetMenu, 
  31.         cSeqPrefs, cNewSeq, cEditSeq, cSaveSel, cRevert,
  32.         cRevSeq,cCompSeq,cRevCompSeq,cDna2Rna,cRna2Dna,cToUpper,cToLower,cDegap,
  33.         cLockIndels,cUnlockIndels,cConsensus,cTranslate, cDistance, cSimilarity,
  34.         cPrettyPrint,cREMap,cDotPlot,cNAcodes, cAAcodes,
  35.         cFindORF,  
  36.         
  37.         cNCBIfetch, cNCBIblast, 
  38.         cEMBLfetch, cEMBLfasta, cEMBLblitz, cEMBLquicks,
  39.         cFHCRCfetch, cFHCRCblocks,
  40.         cGeneidSearch, cGenmarkSearch, cGrailSearch,cPythiaSearch, 
  41.  
  42.         kViewKindMenu, kViewByDefault,kViewByDate,kViewBySize,kViewByName,kViewByKind,kViewAsText,
  43.         kSeqMaskMenu, cMaskSelCommon,cMaskSelORF, cMaskSelAll,cMaskInvert,cMaskClear,
  44.         cSel2Mask, cMask2Sel, cMaskOrSel, cMaskAndSel, cMaskReplicate, cMaskCompress,
  45.         kModePopup, kColorPopup,
  46.       kLockButHit, kColorButHit, kMonoButHit 
  47.         };
  48.  
  49.     enum  selectionFlags { 
  50.         kSeqSel = 1, kNoSeqSel = 0,
  51.         kMaskSel = 2, kNoMaskSel= 0,
  52.         kIndexSel = 4, kNoIndexSel = 0,
  53.         kAllIfNone = 8, kNoneIfNone = 0,
  54.         kEqualCount = 16, kUnequalCount = 0,
  55.         };
  56.   
  57.     static Boolean fgTestSeqFile, fgLockText, fgStartDoc;
  58.     static short fgViewMode,fgUseColor,fgMatKind,fgDistCor;
  59.     static char *fgSire;
  60.     static Nlm_RecT    fgWinRect;
  61.     static void GetGlobals();
  62.     static void SaveGlobals();
  63.     static void NewSeqDoc();
  64.  
  65.      DSeqList    *    fSeqList;
  66.     DAlnView    *    fAlnView;
  67.     DAlnIndex     * fAlnIndex;
  68.     DAlnHIndex     * fAlnHIndex;
  69.     DAlnITitle    *    fAlnITitle;
  70.     DPrompt    *    fHeadline;                 //seqlist header
  71.     DPopupList    * fFormatPop;             //seq output format
  72.     DPopupList    * fModePop;
  73.     DPopupList    * fColorPop;
  74.     DPrompt    *    fSeqMeter;                 //list base#, other info?
  75.  
  76.     long            fUpdateTime;            //time of last .showreverted/.updateFlds 
  77.     short            fInFormat;                //file input format 
  78.     Boolean        fSaveSelection, fUseColor;
  79.     DCheckBox * fColorCheck, * fLockCheck;
  80.     //DIconButton        * fLockButton, * fColorButton, * fMonoButton;
  81.     DWindow        *    fPrintDoc;
  82.     char            *    fDocTitle;
  83.     
  84.     DSeqDoc( long id, DSeqList* itsSeqList, char* name = NULL);
  85.     virtual ~DSeqDoc();
  86.  
  87.     static Boolean IsSeqFile(DFile* aFile);
  88.     static void SetUpMenu(short menuId, DMenu*& aMenu); // !! can't do virtual statics !!
  89.  
  90.     virtual void Save(DFile* f) { WriteTo( f); }  // revise for iostreams
  91.     virtual void WriteTo (DFile* aFile = NULL);            // revise for iostreams
  92.     virtual Boolean ReadFrom(DFile* aFile = NULL, Boolean append = true);    // revise for iostreams
  93.  
  94.     virtual void Open();
  95.     virtual void Open(DFile* aFile);
  96.     virtual void Close();
  97.     virtual void Revert();
  98.     virtual void ResizeWin();
  99.     virtual void Activate();
  100.     virtual void Deactivate();
  101.     virtual void ProcessTask(DTask* theTask);
  102.     virtual Boolean IsMyTask(DTask* theTask);
  103.     virtual Boolean DoMenuTask(long tasknum, DTask* theTask);
  104.     virtual Boolean IsMyAction(DTaskMaster* action);
  105.     virtual void FreeData();
  106.     virtual char* GetTitle(char* title, ulong maxsize);
  107.  
  108.     virtual void MakeGlobalsCurrent();
  109.     virtual void SortView( DSeqList::Sorts sortorder);
  110.     virtual void ToTextDoc();
  111.     
  112.     virtual void AddSeqToList(DSequence* item);
  113.     virtual void AddNewSeqToList();
  114.     virtual Boolean IsEmpty() { 
  115.         if (fSeqList) return fSeqList->IsEmpty();
  116.         else return true;
  117.         }
  118.                          
  119.                 // revise for iostreams !?
  120.     virtual short SelectionToFile(Boolean AllatNoSelection, 
  121.                                                     char* aFileName, short seqFormat); //return # written 
  122.     virtual void GetSelection( long selectFlags, 
  123.                                                         DSeqList*& aSeqList, long& start, long& nbases);
  124.     virtual void FirstSelection( DSequence*& aSeq, long& start, long& nbases);        
  125.     virtual void OpenSeqedWindow(DSequence* aSeq);
  126.     virtual void EditSeqs(); 
  127.     virtual void FindORF(); 
  128.     virtual void MakeConsensus(); 
  129.     virtual void MakeSeqPrint(Boolean doREMap);
  130.     virtual void MakeAlnPrint();
  131.     virtual void Print(); 
  132.     virtual void DistanceMatrix(short form);
  133.     virtual void NotDirty();
  134.  
  135. protected:
  136.     virtual void AddViews(); 
  137.     virtual void AddTopViews(DView* super);
  138.     virtual void AddModePopup(DView* super);
  139.     virtual void AddAlnIndex(DView* super, short width, short height);
  140.     virtual void AddAlnView(DView* super, short width, short height);
  141.     virtual void AddSeqAtToList( long aRow, long start1, long nbases1, 
  142.                                         DSeqList*& aSeqList, long& start, long& nbases);
  143.     virtual void AddMaskedSeqToList( long aRow, short masklevel,
  144.                                         DSeqList*& aSeqList, long& start, long& nbases);
  145. };
  146.  
  147.  
  148. extern char* gDefSeqName;
  149.  
  150.  
  151. #endif //_DSEQDOC_
  152.